home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / source / gfxfx / copper2.pas < prev    next >
Pascal/Delphi Source File  |  1994-04-20  |  1KB  |  78 lines

  1.  
  2. {$g+}
  3. program copper;
  4. { Again copper-stuff (2), by Bas van Gaalen, Holland, PD }
  5. uses crt;
  6. const
  7.  pal : array [0..3*28-1] of byte =
  8.    (4,2,2,8,4,4,12,6,6,16,8,8,20,10,10,24,12,12,28,14,14,32,16,16,
  9.     36,18,18,40,20,20,44,22,22,48,24,24,52,26,26,52,26,26,56,28,28,
  10.     56,28,28,60,30,30,60,30,30,60,30,30,63,33,33,63,33,33,63,33,33,
  11.     63,33,33,63,33,33,60,30,30,56,28,28,52,26,26,48,24,24);
  12.  
  13. procedure copperbars(var colors; lines : word; count : byte); assembler;
  14. var i : byte;
  15. asm
  16.   cli
  17.   cld
  18.   push ds
  19.   mov ah,0
  20.   mov dh,3
  21.  @l0:
  22.  
  23.   mov dl,0dah        { vertical retrace }
  24.  @vert1:
  25.   in al,dx
  26.   test al,8
  27.   jnz @vert1
  28.  @vert2:
  29.   in al,dx
  30.   test al,8
  31.   jz @vert2
  32.  
  33.   mov bh,1
  34.   mov di,[lines]
  35.  
  36.  @l1:
  37.   mov bl,bh
  38.   inc bh
  39.   lds si,[colors]
  40.  
  41.  @l2:
  42.   mov dl,0c8h
  43.   mov al,ah
  44.   out dx,al
  45.   inc dx
  46.   outsb
  47.   outsb
  48.  
  49.   mov dl,0dah        { horizontal retrace }
  50.  @hor1:
  51.   in al,dx
  52.   test al,1
  53.   jnz @hor1
  54.  @hor2:
  55.   in al,dx
  56.   test al,1
  57.   jz @hor2
  58.  
  59.   mov dl,0c9h
  60.   outsb
  61.  
  62.   dec  di
  63.   jz   @out
  64.   dec  bl
  65.   jnz  @l2
  66.   jmp  @l1
  67.  @out:
  68.   dec  count
  69.   jnz  @l0
  70.  
  71.   pop ds
  72.   sti
  73. end;
  74.  
  75. begin
  76.   repeat copperbars(pal,380,8); until keypressed;
  77. end.
  78.